dofile "lib/radical.lua"

function tile(s) 
  return const.path.gfx.."game/ka/"..s..".jpg"; 
end

function dxml(s)
  return const.path.dlg.."1-deadhour/wake/"..s..".xml";
end

wake = engine.state {
   _window      = false --Kate closed a window
  ,_phone       = false --Kate listened to phone message
  ,_cup         = false --Kate removed broken cup
  ,_dad         = false --Kate saw dad
  ,_dadhelp     = false --Kate needs to help dad
  ,_nodrug      = false --Kate forgot to buy a drug
  ,_spoon       = false --Kate took a spoon
  ,_button      = false --Kate took a button
  ,_buttonuse   = false --Kate fixed a door bell
  ,_bell        = false --Number of rings to the door
  ,_drugfound   = false --Kate found drug
  ,_drugdad     = false --Kate gave drug to dad
  ,_kitcup      = false --Kate took a cup
  ,_water       = false --Water is in the cup
  ,_drugwater   = false --Dad took a drug and water
  ,_dadmoved    = false --Kate moved dad to the hall
  ,_alldone     = false --Kate did all the quests
}

wake_player = musplayer.player {
   sfx("short_static"):inside("start1b")
  ,sfx("cupsmash"):inside("wakeup")
  ,sfx("softnote"):inside("bed_slide")
  ,mus("rain"):inside("bed"):loop()
  ,sfx("dooropen_echo"):inside("start4")
  ,mus("clockticking"):inside("hall"):loop():always()
  ,mus("clockticking_low"):inside("kitchen"):loop():always()
  ,mus("clockticking_low"):inside("coridor"):loop():always()
  ,mute():inside("kateroom"):when("is_music()"):always()
  ,mute():inside("kateroom"):when("is_music()"):always()
  ,sfx("note"):inside("toilet")
  ,sfx("dooropen2"):inside("outside_pause"):always()
  ,sfx("dooropen2"):inside("start5"):always()
  ,sfx("dooropen2"):inside("coridor_pause"):always()
  ,mus("nightmare"):inside("level2"):loop():always():when("not wake._drugfound")
  ,sfx("footsteps"):inside("goup2"):always()
  ,sfx("footsteps"):inside("goup3"):always()
  ,sfx("footsteps"):inside("godown1"):always()
  ,sfx("footsteps"):inside("godown2"):always()
  ,sfx("dooropen2"):inside("street_pause"):always()
  ,sfx("dooropen2"):inside("level1_pause"):always()
  ,sfx("doorbell"):inside("goodbell_open1")
  ,sfx("doorunlockopen"):inside("goodbell_open2")
  ,mute():fade(3000,3000):inside("goodbell_dlg1")
  ,sfx("doorshut2"):inside("goodbell_close")
  ,sfx("softnote"):inside("bed_slide2")
}

main = engine.main {
   start        = chain_ {
                     episode_("1-wake")
                    ,musplayer_("wake_player")
                    ,walk_("start0")
                  }
  ,finish       = gamefile_("1-deadhour/walk.lua")
}

start0 = pause {
   time         = 1500
  ,next         = "start1"
}

start1 = pause {
   time         = 6000
  ,tile         = { const.path.gfx.."instead.jpg", 390, 210 }
  ,next         = "start1b"
}

start1b = engine.gameroom {
   time         = 6000
  ,fps          = 20
  ,tfno         = 0
  ,tile         = { const.path.gfx.."logo1.jpg", 295, 230 }
  ,frames       = { "logo1", "logo2", "logo3", "logo4" }
  ,ontimer      = function(s,x,y)
                    s.tfno = s.tfno + 1;
                    if s.fno == nil or s.fno == 5 then
                      s.fno = 1;
                    end
                    local spr = sprite.load(const.path.gfx..s.frames[s.fno]..".jpg");
                    sprite.copy(spr, s.pic, 295, 210);
                    sprite.free(spr);
                    s.fno = s.fno+1;
                    if s.tfno / 20 >= s.time / 1000 then
                      s.tfno = 0;
                      s.fno = nil;
                      walk(s.next);
                    end
                  end
  ,next         = "start2"
}

start2 = pause {
   time         = 6000
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "РАЗРАБОТАНО НА ПЛАТФОРМЕ", const.picwidth, 260, "white", const.font, 18);
                    drawing.draw_text_center(p, "INSTEAD", const.picwidth, 280, "white", const.fontb, 30);
                    return p;
                  end
  ,next         = "start3"
}

start3 = pause {
   time         = 6000
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "ИГРА", const.picwidth, 260, "white", const.font, 18);
                    drawing.draw_text_center(p, "Василия Воронкова", const.picwidth, 280, "white", const.fontb, 30);
                    return p;
                  end
  ,next         = "wakeup"
}

wakeup = cutscene {
   tile         = { tile "clock", 20, 40 }
  ,bounds       = { nil, 540, 900 }
  ,enter        = unlock_("gamestart")
  ,dsc          = [[Катя не сразу поняла, что проснулась. По какой-то непроницаемой оглушающей тишине вокруг она догадалась, 
                    что еще даже не начало светать. Но спать ей больше не хотелось, ее не покидало чувство смутной тревоги.]]
  ,next         = "bed_slide"
}

bed_slide = slideup {
   fps          = 20
  ,x            = 0
  ,y            = 360
  ,step         = 2
  ,tile         = tile "bed"
  ,next         = "bed"
}

bed = scene {
   tile         = tile "bed"
  ,dsc          = [[Сон больше не идет, но все-таки так тяжело заставить себя встать с постели. За окном слышится шум дождя.
                    Когда Катя ложилась спать, дождь уже начинался -- видимо, он шел всю ночь напролет, и весь город теперь 
                    затоплен дождевой водой. Катя почему-то представила, как грязная пенистая вода нескончаемым потоком хлещет
                    из водостоков, стекает по стенам отреставрированных домов, смывая с них еще свежую краску, заливает окна,
                    и вокруг нет ничего -- ни машин, ни пешеходов -- только глубокое черное небо и бесконечный гортанный звук
                    несмолкающего дождя.
                    ^^Где-то вдалеке послышался раскрат грома, и Катя почувствовала на своем лице холод промозглого ночного ветра.
                    Наверное, в комнате не закрыто окно.
                  ]]
  ,alwaysdsc    = true
  ,obj          = { "bed_stand" }
}

bed_stand = staticitem {
   dsc          = "Надо {вставать}."
  ,act          = chain_ { unlock_("1-start"), walkblack2_("kateroom1") }
}

kateroom1 = scene {
   tile         = choose_ {
                     ["default"] = { tile "window", 0, 20 }
                    ,["wake._window"] = tile "room"
                  }
  ,bounds       = choose_ {
                     ["default"] = { nil, 380, 850 }
                    ,["wake._window"] = { 120, 40, 700 }
                  }
  ,alwaysdsc    = true
  ,dsc          = choose_ {
                     ["default"] =
                      [[Шум дождя за окном вовсе не успокаивает как обычно, а, напротив, вызывает странное необъяснимое беспокойство.
                        Одна из створок окна и правда {closewindow|приоткрыта} и прижата с двух сторон старыми книгами, чтобы ее не 
                        распахнул ветер. Иногда в комнате бывает душно, но Катя совсем не помнит, как она оставляла вчера открытым
                        окно. На секунду она вообще как будто не узнает свою комнату. Все вокруг вокруг кажется каким-то чужим и незнакомым.]]
                    ,["wake._window"] = "Катя как будто вообще не узнает свою комнату. Все вещи вокруг кажутся чужими."
                  }
  ,obj          = { "box", "notebooks", "book", "clock", "bag", "shelf", "armchair", "phone" }
  ,nav          = {
                    down = vw("Выйти из комнаты", "titles_hub"):cnd("wake._window", "Надо бы сначала закрыть окно. И так уже весь подоконник залит водой.")
                  }
}

titles_hub = engine.hub {
  enter         = choose_ {
                     ["default"] = walk_("start4")
                    ,["titles_hub._seen"] = walk_("hall")
                  }
}

start4 = pause {
   time         = 6000
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "ОРИГИНАЛЬНЫЙ СЦЕНАРИЙ", const.picwidth, 260, "white", const.font, 18);
                    drawing.draw_text_center(p, "Василий Воронков", const.picwidth, 280, "white", const.fontb, 30);
                    return p;
                  end
  ,next         = "hall"
}

kateroom2 = scene {
   tile         = tile "room"
  ,bounds       = { 120, 40, 700 }
  ,dsc          = "Где же могут быть эти таблетки?^"
  ,obj          = { "box2", "bag2", "shelf2" }
  ,nav          = {
                    down = vw("Выйти из комнаты", "hall")
                  }
}

bed_slide2 = slideup {
   fps          = 20
  ,x            = 0
  ,y            = 360
  ,step         = 2
  ,tile         = tile "bed"
  ,next         = "kateroom3"
}

kateroom3 = scene {
   tile         = tile "bed"
  ,dsc          = [[Катя валится с ног от усталости, однако она думает, что вряд ли сможет {sleep|заснуть} после всего этого. К тому же меньше, чем через час, ей нужно будет идти в институт.]]
}

sleep = staticitem {
  act           = walk_("gosleep")
}

gosleep = pause {
   time         = 1
  ,fading       = 30
  ,next         = "main"
}

closewindow = staticitem {
  act           = chain_ { set_("wake._window"), stop_music, sound_("doorshut2"), walkblack2_("kateroom1", "Катя убрала с подоконника книги и закрыла окно.") }
}

box = staticitem {
   dsc          = "На {тумбочке}"
  ,act          = "Старая тумбочка, которую они купили много лет назад. Ящики заедают, и не всегда закрываются с первого раза, однако тумбочка все еще довольно крепкая. Катя хранит в ней свои личные вещи."
  ,cnd          = if_("wake._window")
  ,showonce     = true
}

box2 = staticitem {
   dsc          = "У кровати стоит {тумбочка}."
  ,act          = chain_ { sound_("drawer"), "Катя обыскала все ящики в тумбочке. Таблеток в них не было." }
  ,showonce     = true
  ,disable      = if_("wake._drugfound")
}

notebooks = staticitem {
   dsc          = "у кровати лежат какие-то {тетради}"
  ,act          = "Конспекты лекций по феноменологической редукции. Из-за отца Кате часто приходится пропускать занятия. Жаль, от конспектов было немного толку. Надо не забыть вернуть их Коле."
  ,cnd          = if_("wake._window")
  ,showonce     = true
}

book = staticitem {
   dsc          = "и {книга}."
  ,act          = "«Логические исследования» Эдмунда Гуссерля. В институтской лавке продавалась с большой скидкой, почти даром. Хотя сейчас бы Катя не купила ее даже за такие деньги."
  ,cnd          = if_("wake._window")
  ,showonce     = true
}

clock = staticitem {
   dsc          = "{Часы} на стене давно не работают."
  ,act          = "В один день часы просто остановились и перестали заводиться. Теперь они всегда показывают половину четвертого. Надо бы отнести часы в мастерскую, но на это нет ни времени, ни денег."
  ,cnd          = if_("wake._window")
  ,showonce     = true
}

bag = staticitem {
   dsc          = "Рядом с тумбочкой -- пластиковая {сумка} из обувного магазина."
  ,act          = "Катя ходит с ней в институт после того, как ее рюкзак порвался."
  ,cnd          = if_("wake._window")
  ,showonce     = true
}

bag2 = staticitem {
   dsc          = "Рядом с тумбочкой -- пластиковая {сумка} из обувного магазина."
  ,act          = chain_ { set_("wake._nodrug"), sound_("items"), "В сумке ничего нет. Неужели Катя забыла купить мепередин?" }
  ,cnd          = if_("wake._window")
  ,showonce     = true
  ,disable      = if_("wake._drugfound")
}

shelf = staticitem {
   dsc          = "{Гардеробный шкаф} у стены весь потемнел от старости."
  ,act          = "Он достался им еще от прошлых жильцов. Страшно подумать, сколько лет шкаф уже стоит в этой комнате."
  ,cnd          = if_("wake._window")
  ,showonce     = true
}

shelf2 = staticitem {
   dsc          = "Гардеробный {шкаф} у стены весь потемнел от старости."
  ,act          = chain_ { sound_("cabinetdoor"), "Здесь нет мепередина. Да и вряд ли Катя положила бы его в гардеробный шкаф." }
  ,showonce     = true
  ,disable      = if_("wake._drugfound")
}

armchair = staticitem {
   dsc          = "На кресле рядом со шкафом {что-то} лежит."
  ,act          = "Это одеяло, с которым спит отец. Катя принесла его сюда вчера, когда они убирались в гостиной. Странно, что отец потом не забрал его."
  ,cnd          = if_("wake._window")
  ,showonce     = true
}

phone = staticitem {
   dsc          = "На старом офисном {телефоне}, который отец несколько лет назад принес с работы, горит красный индикатор -- есть одно непрочитанное сообщение."
  ,cnd          = if_("wake._window and not wake._phone")
  ,act          = walk_("phone_dlg")
}

phone_dlg = dialog {
   tile         = { tile "phone", 590, 180 }
  ,bounds       = { 220, 200 }
  ,dlg          = dxml "phone"
  ,dsc          = "Наверное, Катя не заметила это сообщение вчера."
}

phoneidle_dlg = dialog {
   dsc          = "-- Здравствуй, это Коля. Я просто хотел узнать, как у тебя дела. Ты давно не появлялась в институте... У тебя все в порядке? Звони, если... если что-то будет нужно. Пока."
  ,bounds       = { 180, 240, 650 }
  ,dlg          = dxml "phoneidle"
}

hall = scene {
   tile         = choose_ {
                     ["default"] = tile "hall"
                    ,["wake._dadmoved"] = { tile "dad2", 500, 100 }
                  }
  ,alwaysdsc    = true
  ,dsc          = choose_ {
                     ["default"] = "Свет в гостиной горит, однако отца здесь нет. Диван даже не разложен -- судя по всему, он вообще не ложился спать."
                    ,["wake._dad"] = ""
                  }
  ,obj          = { "dad2", "cupdebris", "komod" }
  ,nav          = {
                     up = vw("В коридор", "coridor")
                    ,right = vw("На кухню", "kitchen")
                    ,left = vw("В комнату Кати", "kateroom_hub")
                  }
}

dad2 = staticitem {
   dsc          = "{Отец} стоит, ссутулившись, у окна, глядя на занимающийся рассвет."
  ,act          = walk_("dad_dlg2")
  ,cnd          = if_("wake._dadmoved")
}

dad_dlg2 = dialog {
   tile         = { tile "dad2", 500, 100 }
  ,dlg          = dxml "dad2"
  ,dsc          = "Отцу как будто и правда стало лучше."
}

komod = staticitem {
   dsc          = "У стены стоит потертый {комод}."
  ,act          = chain_ { sound_("items2"), "В этом комоде хранятся постельное белье и полотенца. Мепередина здесь нет." }
  ,cnd          = if_("wake._dadhelp and not wake._drugfound")
  ,showonce     = true
}

kateroom_hub = engine.hub {
  enter         = choose_ {
                     ["default"] = walk_("kateroom1")
                    ,["wake._dadhelp"] = walk_("kateroom2")
                    ,["wake._alldone"] = chain_ { stop_music, walk_("bed_slide2") }
                  }
}

cupdebris = staticitem {
   dsc          = "На полу лежат {какие-то осколки}."
  ,cnd          = not_("wake._cup")
  ,act          = chain_ { sound_("items"), set_("wake._cup"), "Это просто разбитая чашка. Наверное, отец обронил ее ночью. Катя убрала осколки в мусорное ведро." }
}

kitchen = scene {
   tile         = tile "table"
  ,alwaysdsc    = true
  ,dsc          = "Кухня такая тесная, что приходится протискиваться между столом и плитой."
  ,obj          = { "cup", "washer", "kitchen_box" }
  ,bounds       = { nil, 50 }
  ,nav          = { down = vw("Выйти", "hall") }
}

kitchen_box = staticitem {
   dsc          = "На стене висит {кухонный шкаф}."
  ,act          = chain_ { sound_("cabinetdoor"), "В этом шкафу хранится посуда. Катя никак не могла положить сюда мепередин." }
  ,cnd          = if_("wake._dadhelp")
  ,showonce     = true
  ,disable      = if_("wake._drugfound")
}

cup = item {
   nam          = choose_ {
                     ["default"] = "Кружка"
                    ,["wake._water"] = "Кружка с водой"
                  }
  ,dsc          = "На столике стоит {кружка}."
  ,ico          = ico "cup"
  ,img          = ico "cup-use"
  ,tak          = chain_ { set_("wake._kitcup"), "Катя взяла кружку." }
  ,use          = chooseuse_ {
                     ["default"] = "Не стоит этого делать."
                    ,["dad1"] =
                      choose_ {
                         ["default"] = "В кружке нет воды"
                        ,["wake._water"] = 
                          choose_ {
                             ["wake._drugdad"] = chain_ { drop_("cup"), set_("wake._drugwater"), walk_("dad_dlg") }
                            ,["default"] = "Надо бы сначала отдать отцу лекарство."
                          }
                      }
                    ,["washer"] = chain_ { sound_("watercup"), set_("wake._water"), "Катя налила в кружку воды." }
                  }
}

washer = staticitem {
   dsc          = "Из {крана} в раковине бесшумно капает вода."
  ,act          = "В раковине еще осталась посуда со вчерашнего дня."
  ,disable      = if_("wake._water")
}

coridor = scene {
   tile         = { ctile "coridor", 500, 20 }
  ,bounds       = { nil, 50, 500 }
  ,dsc          = condition_("not wake._dadhelp", "Дверь в уборную открыта.")
  ,obj          = { "coridor_box" }
  ,nav          = {
                     up = vw("Выйти из квартиры", "outside_hub"):sndif("dooropen", "wake._dadhelp"):cnd("wake._dadhelp", "Не стоит выходить из дома среди ночи.")
                    ,left = vw("В туалет", "toilet")
                    ,down = vw("В гостиную", "hall")
                  }
}

coridor_box = staticitem {
   dsc          = "У стены стоит деревянный {шкаф}."
  ,cnd          = if_("wake._dadhelp")
  ,act          = chain_ { sound_("items2"), "Коробки из-под обуви, облезшая меховая шапка, сломанный телефон -- все это давно пора выбросить." }
  ,showonce     = true
  ,disable      = if_("wake._drugfound")
}

toilet = scene {
   tile         = { tile "dad", 393, 280 }
  ,enter        = chain_ { stop_music, set_("wake._dad") }
  ,obj          = { "dad1" }
  ,nav          = {
                    down = vw("Выйти", "coridor")
                  }
}

dad1 = staticitem {
   dsc          = "На полу сидит {отец} Кати."
  ,act          = walk_("dad_dlg")
  ,cnd          = not_("wake._dadmoved")
}

dad_dlg = dialog {
   tile         = { tile "dad", 393, 280 }
  ,dlg          = dxml "dad"
  ,dsc          = "Отцу даже тяжело поднять голову."
}

function make_bellscene(nam,level)
  return scene {
     dsc        = "Никто не отвечает."
    ,nohud        = true
    ,tile       = { ctile "doorbell", 540, 180 }
    ,bounds     = { 180, 200, 300 }
    ,alwaysdsc  = true
    ,obj        = { 
                     xobj("^^Катя думает -- стоит ли ей {звонить} еще", chain_ { sound_("doorbell"), walkblack_(nam) })
                    ,xobj("или лучше попытать счастья {с другой квартирой}.", walk_(level))
                  }
  }
end

outside_hub = engine.hub {
  enter         = choose_ {
                     ["default"] = walk_("start5")
                    ,["outside_hub._seen"] = walk_("outside_pause")
                  }
}

start5 = pause {
   time         = 6000
  ,enter        = stop_music
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "ПРОГРАММИРОВАНИЕ", const.picwidth, 260, "white", const.font, 18);
                    drawing.draw_text_center(p, "Василий Воронков", const.picwidth, 280, "white", const.fontb, 30);
                    return p;
                  end
  ,next         = "start6"
}

start6 = pause {
   time         = 6000
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "ТЕСТИРОВАНИЕ И КОНСУЛЬТАЦИИ", const.picwidth, 260, "white", const.font, 18);
                    drawing.draw_text_center(p, "Петр Каменев", const.picwidth, 280, "white", const.fontb, 30);
                    return p;
                  end
  ,next         = "level2"
}

outside_pause = pause {
   time         = 1000
  ,next         = "level2"
}

coridor_pause = pause {
   time         = 1000
  ,next         = "coridor"
}

goup3 = slidedown {
   fps          = 1
  ,x            = 70
  ,y            = 360
  ,step         = 40
  ,tile         = tile "oldstairs_up"
  ,next         = "level3"
}

goup2 = slidedown {
   fps          = 1
  ,x            = 70
  ,y            = 360
  ,step         = 40
  ,tile         = tile "oldstairs_up"
  ,next         = "level2"
}

godown1 = slidedown {
   fps          = 1
  ,x            = 70
  ,y            = 360
  ,step         = 40
  ,tile         = tile "oldstairs_down"
  ,next         = "level1"
}

godown2 = slidedown {
   fps          = 1
  ,x            = 70
  ,y            = 360
  ,step         = 40
  ,tile         = tile "oldstairs_down"
  ,next         = "level2"
}

street = scene {
   tile         = tile "building"
  ,bounds       = { 280, nil, 550 }
  ,dsc          = "Дождь наконец закончился, однако поднялся сильный порывистый ветер, и холод пробирает до самых костей. Сложно поверить в то, что еще только начало июня."
  ,obj          = { "nobody", "communice" }
  ,nav          = {
                    left = vw("Вернуться в дом", "level1_pause")
                  }
}

street_pause = pause {
   time         = 1000
  ,next         = "street"
}

level1_pause = pause {
   time         = 1000
  ,next         = "level1"
}

nobody = staticitem {
   dsc          = "Уже и правда начинает светать, однако на улице все еще {никого нет}."
  ,act          = "И аптеки еще не работают. Та, которая в медицинском центре, и вовсе открывается часов в десять утра."
  ,showonce     = true
}

communice = staticitem {
   dsc          = "Рядом со входом в дом есть старый {домофон}."
  ,act          = [[Сколько Катя себя помнит, домофон всегда не работал, а недавно какие-то хулиганы выломали замок на двери 
                    подъезда, так что теперь в нем бы и не было никакого смысла. Домофон совсем старый, таких у новых домов
                    уже не увидишь -- для каждой из квартир в этом доме есть собственный звонок. Удивительно, но {buttons|кнопки} у 
                    некоторых звонков еще на месте.]]
  ,disable      = if_("wake._button")
}

buttons = staticitem {
  act           = "Так ничего не получится."
}

level1 = scene {
   tile         = tile "level1"
  ,bounds       = { 300, nil, 550 }
  ,alwaysdsc=true
  ,dsc          = [[В подъезде -- настоящий погром. Старая краска почти вся облезла и засыпала пол, стены усыпаны трещинами и выбоинами. 
                    Дома в старом городе зачастую выглядят лучше.]]
  ,obj          = { "level1_box" }
  ,nav          = {
                     up = vw("Подняться на этаж выше", "goup2")
                    ,left = vw("Выйти на улицу", "street_pause")
                  }
}

level1_box = staticitem {
   dsc          = choose_ {
                     ["default"] = "К тому же кто-то недавно вытащил сюда старую облезшую {тумбочку}, и, похоже, что в ней завелись крысы."
                    ,["wake._spoon"] = "К тому же кто-то недавно вытащил сюда старую облезшую тумбочку."
                  }
  ,act          = chain_ { sound_("drawer"), 
                    "Слава Богу, крыс внутри не оказалось. Зато в тумбочке лежала закопченная {spoon|ложка} и сломанная зажигалка. Видимо, это добро оставила здесь шпана, которая собирается у них в подъезде по вечерам." }
}

spoon = item {
   nam          = "Ложка"
  ,ico          = ico "spoon"
  ,img          = ico "spoon-use"
  ,tak          = chain_ { set_("wake._spoon"), "Катя взяла ложку." }
  ,use          = chooseuse_ {
                     ["default"] = "Не стоит этого делать."
                    ,["buttons"] = chain_ { sound_("crack"), set_("wake._button"), drop_("spoon"), take_("button"), "Катя выломала с помощью ложки кнопку на одном из звонков." }
                  }
}

button = item {
   nam          = "Кнопка от звонка"
  ,ico          = ico "button"
  ,img          = ico "button-use"
  ,use          = chooseuse_ {
                     ["default"] = "Не стоит этого делать."
                    ,["brokenbell"] = chain_ { set_("wake._buttonuse"), drop_("button"), "Кажется, кнопка подошла. Есть лишь один способ проверить, заработает ли звонок." }
                  }
}

bell2 = staticitem {
  act           = chain_ { sound_("doorbell"), walkblack_("bell_scene2") }
}

bell_scene2 = make_bellscene("bell_scene2","level2");

level2 = scene {
   tile         = tile "level2"
  ,dsc          = "Уже начинает светать, всего через пару часов Кате придется ехать в институт.^"
  ,bounds       = { 300, nil, 550 }
  ,obj          = { "flat42", "flat43", "flat44" }
  ,nav          = {
                     up = vw("Подняться на этаж выше", "goup3")
                    ,right = vw("Вернуться в квартиру", "coridor_pause")
                    ,down = vw("Спуститься на этаж ниже", "godown1")
                  }
}

flat42 = staticitem {
   dsc          = "На этом этаже живет Катя, в квартире 41. Здесь также есть квартиры {42},"
  ,act          = "Здесь живет пара с двумя детьми. Они переехали недавно, и Катя их почти не знает. Рядом с дверью есть {bell2|звонок}."
  ,disable      = if_("wake._drugfound")
}

flat43 = staticitem {
   dsc          = "{43} и"
  ,act          = [[Здесь сейчас никто не живет. Предыдущие жильцы съехали, а новые еще не приехали. Если вообще тут будет кто-нибудь жить. 
                    Катя слышала, что во всем северо-западе дома начали пустеть, с тех пор как на другом конце города появились новые
                    микрорайоны, где рядом есть станция метро, легко добираться на работу, да и новостройки куда комфортнее этих столетних
                    коробок. А может, просто никто не хочет жить на границе со старым городом?]]
  ,disable      = if_("wake._drugfound")
}

flat44 = staticitem {
   dsc          = "{44}."
  ,act          = "В этой квартире живет мужчина средних лет. Кажется, он работает шофером автобуса. Катя видела его несколько раз с отцом, хотя сама она с ним никогда не говорила. Рядом с дверью есть {bell2|звонок}."
  ,disable      = if_("wake._drugfound")
}

bell3 = staticitem {
  act           = chain_ { sound_("doorbell"), walkblack_("bell_scene3") }
}

bell_scene3 = make_bellscene("bell_scene3","level3");

level3 = scene {
   tile         = tile "level3"
  ,dsc          = "Здесь стоит отвратительный запах. Такое ощущение, что здесь сдохла кошка."
  ,bounds       = { 300, nil, 550 }
  ,obj          = { "flat51", "flat52", "flat53", "flat54" }
  ,nav          = {
                    down = vw("Спуститься на этаж ниже", "godown2")
                  }
}

flat51 = staticitem {
   dsc          = "На этом этаже есть квартиры {51},"
  ,act          = [[В этой квартире живет пожилая женщина. Вряд ли она сейчас поможет. Где-то с год назад она затопила их квартиру,
                    и отец тогда, помнится, не сдерживал себя в эмоциях. С тех пор у них отношения хуже некуда.]]
  ,disable      = if_("wake._drugfound")
}

flat52 = staticitem {
   dsc          = "{52},"
  ,act          = [[Катя даже не знает, кто здесь живет. Рядом с дверью есть {bell3|звонок}.]]
  ,disable      = if_("wake._drugfound")
}

flat53 = staticitem {
   dsc          = "{53},"
  ,act          = choose_ {
                     ["default"] = [[Здесь живет молодой мужчина, который недавно развелся с женой. Погода назад он сломал ногу и до сих пор прихрамывает. 
                                     Кажется, {brokenbell|звонок} у его двери сломан, но можно попробовать {knock|постучать}.]]
                    ,["wake._buttonuse"] = "Рядом с дверью есть {goodbell|звонок}, который только что починила Катя."
                  }
  ,disable      = if_("wake._drugfound")
}

goodbell = staticitem {
  act           = chain_ { sound_("doorbell"), walkblack_("goodbell_scene") }
}

goodbell_scene = scene {
   dsc          = "Никто не отвечает."
  ,nohud        = true
  ,tile         = { ctile "doorbell", 540, 180 }
  ,bounds       = { 180, 200, 300 }
  ,alwaysdsc    = true
  ,obj          = { 
                     "goodbell_attempt"
                    ,xobj("Делать-то больше нечего. Катя начинает сомневаться, что в {других квартирах} ей откроют.", walk_("level3"))
                  }
}

goodbell_attempt = staticitem {
   dsc          = "^^Возможно, он все еще не слышит и стоит {позвонить} еще раз?"
  ,act          = choose_ {
                     ["default"] = chain_ { set_("wake._bell"), sound_("doorbell"), walkblack_("goodbell_scene") }
                    ,["wake._bell"] = walkblack_("goodbell_open1")
                  }
}

goodbell_open1 = pause {
   time         = 3000
  ,next         = "goodbell_open2"
}

goodbell_open2 = pause {
   time         = 3000
  ,next         = "goodbell_dlg1"
}

goodbell_dlg1 = dialog {
   tile         = { tile "opendoor", 50, 50 }
  ,bounds       = { 280, 60, 600 }
  ,dlg          = dxml "goodbell1"
  ,dsc          = "-- Катерина? Вы вообще представляете, который сейчас час?"
}

goodbell_transition = pause {
   time         = 2500
  ,next         = "goodbell_dlg2"
}

goodbell_dlg2 = dialog {
   tile         = { tile "opendoor", 50, 50 }
  ,bounds       = { 280, 60, 600 }
  ,dlg          = dxml "goodbell2"
  ,dsc          = "-- Вот, возьмите и... может, вам лучше все-таки скорую вызвать? Это уж не первый раз такое..."
}

goodbell_close = pause {
   time         = 2000
  ,next         = "level3"
}

brokenbell = staticitem {
  act           = [[Судя по всему, кнопка от звонка попросту выломана. Если приглядеться, то можно заметить, что в черном глазке звонка торчит маленький
                    металлический стержень, однако нажать на него пальцем никак не получается.]]
}

knock = staticitem {
  act           = chain_ { sound_("knock"), walkblack_("knock_scene") }
}

knock_scene = scene {
   dsc          = "Никто не отвечает. Скорее всего, он просто не слышит -- дверь слишком толстая."
  ,nohud        = true
  ,bounds       = { 300, 220, 400 }
  ,alwaysdsc    = true
  ,obj          = { 
                    xobj("^^Катя сомневается, что ей стоит и дальше {стучать} в дверь.", chain_ { sound_("knock"), walkblack_("knock_scene") })
                    ,xobj("Лучше уже попытать счастья {с другой квартирой} или хотя бы посмотреть, что не так со звонком.", walk_("level3"))
                  }
}

drug = item {
   nam          = "Таблетка мепередина"
  ,ico          = ico "tab"
  ,img          = ico "tab-use"
  ,use          = chooseuse_ {
                     ["default"] = "Не стоит этого делать."
                    ,["dad1"] = walk_("dad_dlg")
                  }
}

flat54 = staticitem {
   dsc          = "и {54}."
  ,act          = [[В этой квартире большая семья -- супружеская пара, мать то ли жены, то ли мужа и три ребенка, девочки, одна из которых еще грудная. 
                    По ночам Катя часто слышит ее плач. Страшно даже представить, как они все размещаются в двухкомнатной квартире. Рядом с дверью есть 
                    {bell3|звонок}, но лучше, наверное, не беспокоить их в такой час. К тому же маловероятно, что у них есть мепередин.]]
  ,disable      = if_("wake._drugfound")
}
